API de Windows
Tipus | API ![]() |
---|---|
Més informació | |
Stack Exchange | Etiqueta ![]() |
| |
L'API de Windows, informalment WinAPI, és el conjunt bàsic d'interfícies de programació d'aplicacions (API) de Microsoft disponible als sistemes operatius Microsoft Windows.[1] El nom API de Windows fa referència col·lectivament a diverses implementacions de plataformes diferents a les quals sovint es fa referència amb els seus propis noms (per exemple, l'API Win32). Gairebé tots els programes de Windows interactuen amb l'API de Windows. A la línia de sistemes operatius Windows NT, un petit nombre (com ara programes iniciats a principis del procés d'inici de Windows) utilitzen l'API nativa.[2]
El suport per a desenvolupadors està disponible en forma d'un kit de desenvolupament de programari, Microsoft Windows SDK, que proporciona documentació i eines necessàries per crear programari basat en l'API de Windows i les interfícies de Windows associades.[3]
L'API de Windows (Win32) se centra principalment en el llenguatge de programació C,[4] ja que les seves funcions exposades i estructures de dades es descriuen en aquest llenguatge en versions recents de la seva documentació. Tanmateix, l'API pot ser utilitzada per qualsevol compilador o assemblador de llenguatge de programació capaç de gestionar les estructures de dades de baix nivell (ben definides) juntament amb les convencions de trucada prescrites per a trucades i devolució de crides. De la mateixa manera, la implementació interna de la funció de l'API s'ha desenvolupat històricament en diversos idiomes. Malgrat que C no és un llenguatge de programació orientat a objectes, tant l'API de Windows com Windows s'han descrit històricament com a orientats a objectes. També hi ha hagut moltes classes i extensions d'embolcall (de Microsoft i altres) per a llenguatges orientats a objectes que fan més explícita aquesta estructura orientada a objectes (Microsoft Foundation Class Library (MFC), Visual Component Library (VCL), GDI+, etc.). Per exemple, Windows 8 proporciona l'API de Windows i l'API WinRT, que s'implementa en C++ [5] i està orientat a objectes per disseny.[5]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/38/ReactOS_Frankenstein_Email.png/220px-ReactOS_Frankenstein_Email.png)
Visió general
[modifica]Les funcions proporcionades per l'API de Windows es poden agrupar en vuit categories:
- Serveis bàsics
- Proporcioneu accés als recursos bàsics disponibles per a un sistema Windows. S'inclouen coses com ara sistemes de fitxers, dispositius, processos, fils i gestió d'errors. Aquestes funcions es troben als fitxers kernel.exe, krnl286.exe o krnl386.exe a Windows de 16 bits, i kernel32.dll i KernelBase.dll a Windows de 32 i 64 bits. Aquests fitxers resideixen a la carpeta \Windows\System32 en totes les versions de Windows.
- Serveis avançats
- Proporcioneu accés a funcions més enllà del nucli. S'inclouen coses com el registre de Windows, apagar/reiniciar el sistema (o avortar), iniciar/aturar/crear un servei de Windows, gestionar comptes d'usuari. Aquestes funcions es troben a advapi32.dll i advapires32.dll a Windows de 32 bits.
- Interfície de dispositiu gràfic
- Proporciona funcions per enviar contingut gràfic a monitors, impressores i altres dispositius de sortida. Resideix a gdi.exe a Windows de 16 bits i gdi32.dll a Windows de 32 bits en mode d'usuari. El suport GDI en mode nucli el proporciona
win32k.sys
que es comunica directament amb el controlador de gràfics.[6] - Interfície d'usuari
- Proporciona les funcions per crear i gestionar finestres de pantalla i la majoria de controls bàsics, com ara botons i barres de desplaçament, rebre entrada de ratolí i teclat i altres funcions associades a la part de la interfície gràfica d'usuari (GUI) de Windows. Aquesta unitat funcional es troba a user.exe a Windows de 16 bits i user32.dll a Windows de 32 bits. Des de les versions de Windows XP, els controls bàsics resideixen a comctl32.dll, juntament amb els controls comuns (Common Control Library).
- Biblioteca de quadres de diàleg comuns
- Proporciona a les aplicacions els quadres de diàleg estàndard per obrir i desar fitxers, triar color i tipus de lletra, etc. La biblioteca resideix en un fitxer anomenat commdlg.dll a Windows de 16 bits i comdlg32.dll a Windows de 32 bits. S'agrupa a la categoria Interfície d'usuari de l'API.
- Biblioteca de control comuna
- Ofereix a les aplicacions accés a alguns controls avançats proporcionats pel sistema operatiu. Aquests inclouen coses com ara barres d'estat, barres de progrés, barres d'eines i pestanyes. La biblioteca resideix en un fitxer de biblioteca d'enllaços dinàmics (DLL) anomenat commctrl.dll a Windows de 16 bits i comctl32.dll a Windows de 32 bits. S'agrupa a la categoria Interfície d'usuari de l'API.
- Shell de Windows
- El component de l'API de Windows permet a les aplicacions accedir a les funcions proporcionades per l' intèrpret d'ordres del sistema operatiu i canviar-la i millorar-la. El component resideix a shell.dll a Windows de 16 bits i shell32.dll a Windows de 32 bits. Les funcions d'utilitat lleugera de Shell es troben a shlwapi.dll. S'agrupa a la categoria Interfície d'usuari de l'API.
- Serveis de xarxa
- Donar accés a les diferents habilitats de xarxa del sistema operatiu. Els seus subcomponents inclouen NetBIOS, Winsock, NetDDE, trucada de procediment remot (RPC) i molts més. Aquest component resideix a netapi32.dll a Windows de 32 bits.
Referències
[modifica]- ↑ «Win32 API Tutorial => Getting started with Win32 API» (en anglès). [Consulta: 9 desembre 2023].
- ↑ Error: hi ha arxiuurl o arxiudata però calen tots dos paràmetres.Russinovich, Mark. «[Mark Russinovich Inside Native Applications]» (en anglès). Microsoft Docs, novembre 2006. [Consulta: 12 abril 2022].
- ↑ «win32/desktop-src/desktop-programming.md at docs · MicrosoftDocs/win32» (en anglès). [Consulta: 9 desembre 2023].
- ↑ «Walkthrough: Create a traditional Windows Desktop application (C++)» (en anglès). Microsoft Docs, 23-02-2022.
- ↑ 5,0 5,1 Mayberry, Michael. WinRT Revealed (en anglès). New York City: Apress, 2012, p. 3. ISBN 978-1-4302-4585-8.
- ↑ «G» (en anglès). Microsoft Developer Network. [Consulta: 28 gener 2009].